// pages/me/me.js
const app =getApp(); //拿全局
 const db=wx.cloud.database();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userPhoto:"/images/user-unlogin.png",
    nickName:'周末',
    logged:false,
   disabled:false,
   id:''
  },
//点击登录 拿到用户微信信息
  bindGetUserInfo(e){
     console.log(e);
    let userInfo=e.detail.userInfo;
    // 如果用户没有祖册且已经等露
    if(!this.data.logged && userInfo){
      // 向集合插入数据
      db.collection('users').add({
        data:{
          userPhoto:userInfo.avatarUrl,
          nickName:userInfo.nickName,
          signature:'',
          phoneNumber:'',
          weixinNumber:'',
          links:0,
          time:new Date(),
          friendList:[],
          isLocation:true,
          longitude:this.longitude,
          latitude:this.latitude,
          location:db.Geo.Point(this.longitude,this.latitude)
        }
        // priomes回调函数
      }).then(res=>{
         console.log(res)
        db.collection('users').doc(res._id).get()
        .then(res=>{
          console.log(res.data)
          // 直接拿res.data拿不到需要调用对象方法
          // 把用户登录的信息刷新到页面
          app.userInfo=Object.assign(app.userInfo , res.data);
          this.setData({
            userPhoto:app.userInfo.userPhoto,
            nickName:app.userInfo.nickName,
            logged:true,
            id:app.userInfo._id
          })
        });
      })
    }

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

    this.getLocation();

    // 调用云函数   实现目标：如果用户已经等了 这下次直接显示
   wx.cloud.callFunction({
     name:'login',
     data:{
      type: 'OpenId'
     }
   }).then(res=>{
     console.log(res);
     let openid = res.result.openid;
    //  调用云数据库
     let db = wx.cloud.database();
    //判断数据库是否存在已有数据
    db.collection('users').where({
      _openid:res.result._openid
    }).get().then(res=>{
      console.log(res)
      if(res.data.length){
        // 存在就登录            全局变量 用户登录
        app.userInfo=Object.assign(app.userInfo , res.data[0]);
        this.setData({
          userPhoto:app.userInfo.userPhoto,
          nickName:app.userInfo.nickName,
          logged:true,
          id:app.userInfo._id
        });
        this.getMessage();
      }else{
         this.setData({
           disabled:false
         })
      }
       
    })
   
   })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      userPhoto:app.userInfo.userPhoto,
      nickName:app.userInfo.nickName,
      id:app.userInfo._id
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  getMessage(){
     db.collection('message').where({
       userId:app.userInfo._id
     }).watch({
       onChange:function (snapshot){
         
         console.log(snapshot);
         if(snapshot.docChanges.length){
           let list = snapshot.docChanges[0].doc.list;
           if(list.length){
             wx.showTabBar({
               index:2
             });
             app.userMessage=list;
           }else{
               wx.hideTabBar({
                 index:2
               })
               app.userMessage=[];
           }
         }
       },
       onError:function(err){
         console.error('the watch closed because of eror',err)
       }
     })
  },
  getLocation(){
    wx.getLocation({
      type:'gcj02',
      success:(res)=>{
        this.latitude=res.latitude
        this.longitude=res.longitude
        
      }
    })
  },
})